/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package mx.itschapala.dsw2.vista;

import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.List;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.event.ActionEvent;
import mx.itschapala.dsw2.biblioteca8a.bl.LibroBlLocal;
import mx.itschapala.dsw2.biblioteca8a.bl.PrestamoBLLocal;
import mx.itschapala.dsw2.biblioteca8a.bl.usuarioBlLocal;
import mx.itschapala.dsw2.biblioteca8a.dao.PrestamoDaoLocal;
import mx.itschapala.dsw2.biblioteca8a.modelo.Autor;
import mx.itschapala.dsw2.biblioteca8a.modelo.Libro;
import mx.itschapala.dsw2.biblioteca8a.modelo.Prestamo;
import mx.itschapala.dsw2.biblioteca8a.modelo.Usuario;

/**
 *
 * @author RaygozaL
 */
@ManagedBean
@SessionScoped
public class PrestamoBean {
    @EJB
    private LibroBlLocal libroBl;
    
    @EJB
    private usuarioBlLocal usuarioBl;
    @EJB
    private PrestamoBLLocal prestamoBL;
    
    
    
  
    private int idUsuarioSeleccionado; 
public List<Usuario> listaUsuario ;
private List<Prestamo> lista;
private List<Libro> listaLibro;
  private String accion;
  private Prestamo prestamo;
  private String codigoLibro;
    /**
     * Creates a new instance of Prestamo
     */
    public PrestamoBean() {
        prestamo =new Prestamo();
        listaLibro=new ArrayList<Libro>();
        
    }

    public String getCodigoLibro() {
        return codigoLibro;
    }

    public void setCodigoLibro(String codigoLibro) {
        this.codigoLibro = codigoLibro;
    }
    
    

    public List<Prestamo> getLista() {
       lista=prestamoBL.getAll();
        return lista;
    }

    public void setLista(List<Prestamo> lista) {
        this.lista = lista;
    }

    public Prestamo getPrestamo() {
        return prestamo;
    }

    public void setPrestamo(Prestamo prestamo) {
        this.prestamo = prestamo;
    }

    public int getIdUsuarioSeleccionado() {
        return idUsuarioSeleccionado;
    }

    public void setIdUsuarioSeleccionado(int idUsuarioSeleccionado) {
        this.idUsuarioSeleccionado = idUsuarioSeleccionado;
    }

    public List<Usuario> getListaUsuario() {
        listaUsuario=usuarioBl.getAll();
        return listaUsuario;
    }

    public void setListaUsuario(List<Usuario> listaUsuario) {
        this.listaUsuario = listaUsuario;
    }

    public List<Libro> getListaLibro() {
        
        return listaLibro;
    }

    
    
     public String procesarAccion(){
        
        prestamoBL.lendBooks(prestamo.getIdusuario(), listaLibro);
    accion = "";
    return "Prestamo";
    }
    
    public void prepararNuevo(){
        
        prestamo=new Prestamo();
        listaLibro = new ArrayList<Libro> ();
        accion="Nuevo";
    
    }
    
    
    public void prepararEditar(javax.faces.event.ActionEvent evt){
       int index = Integer.parseInt(evt.getComponent().getClientId().split(":")[2]);
        System.out.println("el numero es " + index);
        prestamo = lista.get(index);
        accion = "Editar";
       

    }
    public void prepararEliminar(javax.faces.event.ActionEvent evt) {

        int index = Integer.parseInt(evt.getComponent().getClientId().split(":")[2]);
        System.out.println("el numero es " + index);
          prestamo = lista.get(index);

        accion = "Eliminar";
      

    }
    
    
     public String PrepararUsuario(){
     
        prestamo.setIdusuario(usuarioBl.findById(idUsuarioSeleccionado));
    return "PrestamoConfirmar";
    }
     
    
     public void agregarLibro(javax.faces.event.ActionEvent evt){
         System.out.println("codigo libro" + codigoLibro);
     Libro l=libroBl.findByClaveForLend(codigoLibro);
         if (l!=null) {
             listaLibro.add(l);
         }
     
     }
     
     public void Eliminar (ActionEvent evt){
        int index=Integer.parseInt(evt.getComponent().getClientId().split(":")[2]);
        System.out.println(index);
        listaLibro.remove(index);
    }  
     
    
}
